// 教师类型
export interface Teacher {
  id?: number;      // 教师ID（数据库主键）
  teacher_id: string; // 教师工号 - 使用下划线格式匹配后端JSON
  name: string;     // 教师姓名
  createdAt?: string; // 创建时间
  updatedAt?: string; // 更新时间
}

// 课程类型
export interface Course {
  id: number;
  name: string;
  teacher_id: number;
  class_name: string;
  description: string;
  created_at?: string; // 使用下划线命名，匹配后端
  updated_at?: string; // 使用下划线命名，匹配后端
  class_ids?: number[]; // 关联的班级ID列表
}

// 班级类型
export interface Class {
  id: number;
  name: string;
  grade: string;
}

// 学生类型
export interface Student {
  id: number;
  student_id: string; // 使用下划线命名，匹配后端
  name: string;
  class_id?: number; // 使用下划线命名，匹配后端，可选因为在某些API中可能不返回
  class_name?: string; // 使用下划线命名，匹配后端，可选
  remark?: string; // 备注信息，可选
}

// 签到任务类型
export interface SignInTask {
  id: number;
  course_id: number; // 使用下划线命名，匹配后端
  course_name: string; // 使用下划线命名，匹配后端
  class_name?: string; // 班级名称
  start_time: string; // 使用下划线命名，匹配后端
  end_time: string; // 使用下划线命名，匹配后端
  status: 'active' | 'finished';
  description?: string; // 签到描述
  signed_count?: number; // 已签到人数
  total_count?: number; // 总人数
}

// 签到记录类型
export interface SignInRecord {
  id: number;
  task_id: number; // 使用下划线命名，匹配后端
  student_id: string; // 使用下划线命名，匹配后端
  student_name: string; // 使用下划线命名，匹配后端
  sign_in_time: string | null; // 使用下划线命名，匹配后端
  sign_in_method: 'face' | 'manual' | null; // 使用下划线命名，匹配后端
  status: 'signed' | 'absent';
  created_at?: number; // 创建时间戳
  updated_at?: number; // 更新时间戳
} 